package cn.com.dcsgo.service;

import cn.com.dcsgo.domain.Member;
import cn.com.dcsgo.dto.BindPhoneDTO;
import cn.com.dcsgo.dto.MemberInfoDTO;
import cn.com.dcsgo.dto.MemberUpdateDTO;
import cn.com.dcsgo.dto.SendVerificationCodeDTO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Set;

/**
 * 针对表【member(用户表)】的数据库操作Service
 *
 * @author Dcsgo
 * @since 2025-10-30 15:57:19
 */
public interface MemberService extends IService<Member> {

    /**
     * 更新会员信息
     *
     * @param memberUpdateDTO 会员信息
     * @return true-更新成功，false-更新失败
     */
    boolean update(MemberUpdateDTO memberUpdateDTO);

    /**
     * 获取会员昵称和头像
     *
     * @param openIds 会员ID
     * @return 会员信息DTO，包含昵称和头像
     */
    List<MemberInfoDTO> findMemberNickNameAndPicByOpenIds(Set<String> openIds);

    /**
     * 发送验证码
     * 一分钟内只能发一次，有效期3分钟
     *
     * @param sendVerificationCodeDTO 发送验证码参数
     */
    void sendPhoneCode(SendVerificationCodeDTO sendVerificationCodeDTO);

    /**
     * 绑定手机号
     *
     * @param bindPhoneDTO 绑定手机号请求参数
     * @return true-绑定成功，false-绑定失败
     */
    boolean bindPhone(BindPhoneDTO bindPhoneDTO);
}
